目录35
- 1. 标题
- 二级标题
- 三级标题
- 1.1 自定义标题 ID
- 带自定义 ID 的标题
- 2. 段落与换行
- 3. 强调与删除线
- 3.1 文字高亮
- 4. 列表
- 4.1 无序列表
- 4.2 有序列表
- 4.3 任务列表
- 5. 引用块
- 6. 提示框(Obsidian callout)
- 7. 表格
- 8. 链接
- 9. 图片
- 9.1 路径怎么写
- 9.2 徽章行
- 10. 代码
- 10.1 行内代码
- 10.2 代码块(带语言)
- 10.3 代码块(不带语言)
- 10.4 长代码自动折叠
- 10.5 常用语言标签
- 11. 数学公式
- 11.1 行内公式
- 11.2 独立公式
- 11.3 常用写法
- 12. 脚注
- 13. 分隔线
- 14. 特殊字符与转义
- 15. 不生效的写法
- 16. 一份速查
- Footnotes
Markdown 语法演示
Markdown 语法演示
这份文档逐条演示本站实际支持的 Markdown 写法。每一节都给出源码与渲染结果,可直接对照。
关于这份文档
下面标注「✅ 生效」「❌ 不生效」的结论都经过实际渲染验证,不是按通用 Markdown 规则推断的。不生效的写法也列了出来,写文章时可以直接避开。
1. 标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题渲染效果:
一级标题
二级标题
三级标题
四级标题
五级标题
标题会自动出现在右侧目录里。目录只收二、三级标题——更深会让目录比正文还长。
1.1 自定义标题 ID
站点开了 headingAttributes,可以给标题指定 id:
## 带自定义 ID 的标题 { #my-custom-id }效果:
带自定义 ID 的标题
链接到它:点我
2. 段落与换行
这是第一段。
空行之后是第二段。同一段落里的换行不会保留(HTML 折叠换行)。想强制换行,行尾加两个空格,或者用 <br>。
3. 强调与删除线
*斜体* **粗体** ***粗斜体*** ~~删除线~~效果:斜体 粗体 粗斜体 删除线
3.1 文字高亮
用 == 包住要突出的文字(与 Obsidian 的写法一致):
==这是高亮的文字==效果:这是普通文字,这是高亮的文字,这里又回到普通。
高亮里可以放行内标记,粗体、代码、链接都能正常工作:
==含 **粗体** 的高亮==
==含 `行内代码` 的高亮==
==含 [链接](https://astro.build) 的高亮==效果:
- 含 粗体 的高亮
- 含
行内代码的高亮 - 含 链接 的高亮
同一行可以有多个高亮:第一段 中间隔开 第二段,各自独立。
表格、标题、列表、引用块里同样生效:
| 项目 | 说明 |
|---|---|
| 关键字 | 表格单元格里的高亮 |
高亮的边界规则
- 只认恰好两个等号。
====空高亮会被忽略;===三等号===会按「=三等号=」整体高亮。 ==必须成对出现。没闭合时原样输出==文字,不会被吃掉。- 代码块与行内代码里的
==不生效 —— 想在代码里写字面量==是安全的。
4. 列表
4.1 无序列表
- 第一项
- 第二项
- 嵌套项(两空格缩进)
- 再嵌套一级
- 第三项效果:
- 第一项
- 第二项
- 嵌套项(两空格缩进)
- 再嵌套一级
- 嵌套项(两空格缩进)
- 第三项
4.2 有序列表
1. 甲
2. 乙
3. 丙效果:
- 甲
- 乙
- 丙
4.3 任务列表
- [x] 已完成的事
- [ ] 还没做的事效果:
- 已完成的事
- 还没做的事
局限
任务列表里的复选框是不可点的(disabled)。这是 Markdown 输出 HTML 的固有限制,语法层面无法做成可交互控件。
5. 引用块
> 这是一段引用。
> 第二行在同一引用内。效果:
这是一段引用。
第二行在同一引用内。
6. 提示框(Obsidian callout)
本站保留了 Obsidian 的 callout 语法,并映射到报告体的强调框。
> [!note] 标题
> 正文内容
> [!warning] 注意
> 这里是警告效果:
这是 note 类型
渲染成蓝色边框的信息框,标题单独一行加粗。
这是 warning 类型
渲染成红色边框的警告框。
这是 tip 类型
同 note,蓝色。
这是 danger 类型
同 warning,红色。
支持的类型(映射关系):
| 写的关键字 | 渲染成 |
|---|---|
note info tip abstract summary todo question hint important |
蓝框 |
warning caution danger error bug failure missing |
红框 |
| 其他任意关键字 | 按蓝框处理 |
callout 内可以放多种内容:
7. 表格
标准 GFM 表格:
| 语法 | 写法 | 说明 |
| --- | --- | --- |
| 粗体 | `**文字**` | 两侧加星号 |
| 删除线 | `~~文字~~` | 两侧加波浪号 |效果:
| 语法 | 写法 | 说明 |
|---|---|---|
| 粗体 | **文字** |
两侧加星号 |
| 删除线 | ~~文字~~ |
两侧加波浪号 |
| 行内代码 | `代码` |
两侧加反引号 |
对齐方式(冒号位置决定):
| 左对齐 | 居中 | 右对齐 |
| :--- | :---: | ---: |
| 内容 | 内容 | 内容 || 左对齐 | 居中 | 右对齐 |
|---|---|---|
| 内容 | 内容 | 9001 |
8. 链接
[站内链接](/archives/)
[带标题的链接](/tags/ "跳到标签页")
<https://example.com>
https://example.com效果:
站内链接
带标题的链接
https://example.com
https://example.com
裸 URL 会自动转成链接(GFM 特性)。
9. 图片
效果(点击可放大):

9.1 路径怎么写
图片必须用以 / 开头的绝对路径,指向 public/attachments/ 下的文件。
最容易踩的坑
相对路径(如 attachments/x.png)走 Vite 解析,基准是 markdown 文件自身所在目录,
会去找 src/content/blog/attachments/x.png——那里没有文件,构建时报
[ImageNotFound]。Astro 不会去 public/ 里找。
中文与空格要 URL 编码。用 encodeURI 的规则:
| 原字符 | 编码为 |
|---|---|
| 空格 | %20 |
| 中文字符 | %E4%B8%AD 之类(每个字节两个十六进制) |
/ : . - _ |
不编码 |
例如 /attachments/Excel 笔记/示例图片.jpg 要写成:
/attachments/Excel%20%E7%AC%94%E8%AE%B0/%E7%A4%BA%E4%BE%8B%E5%9B%BE%E7%89%87.jpg9.2 徽章行
技术栈徽章(shields.io)放在同一段里会自动排成一行——本站为此专门写了 CSS 判断,段落里全是矮徽章时切换成 flex 布局:
10. 代码
10.1 行内代码
用一对反引号:
这是 `inline code`,还有 ``带反引号的 `代码` ``。效果:这是 inline code,还有 带反引号的 `代码` 。
10.2 代码块(带语言)
```python
def hello(name: str) -> str:
return f"Hello, {name}"
```效果:
def hello(name: str) -> str:
return f"Hello, {name}"工具条上会显示语言标签和行数,右侧有复制按钮。
10.3 代码块(不带语言)
```
这里是纯文本输出
```效果:
这里是纯文本输出不带语言时渲染成「输出框」样式:没有工具条,左侧有主题色竖线——用来展示终端输出、报错信息这类内容,不会被误读成需要输入的命令。
10.4 长代码自动折叠
超过 10 行的代码块会默认折叠,只显示前 10 行,底部渐隐并给一个「展开其余 N 行」按钮:
SELECT
o.order_id,
o.customer_id,
c.customer_name,
o.order_date,
o.total_amount,
SUM(o.total_amount) OVER (
PARTITION BY o.customer_id
ORDER BY o.order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM orders o
JOIN customers c ON c.customer_id = o.customer_id
WHERE o.order_date >= '2026-01-01'
AND o.status = 'completed'
ORDER BY o.customer_id, o.order_date;
-- 结果约 12 行,超过阈值因此被折叠
SELECT COUNT(*) AS total_rows FROM (
SELECT DISTINCT customer_id FROM orders
) AS t;行数写在 theme.css 的 :root { --code-collapse-lines } 里,改一处同时影响「是否折叠」和「裁切高度」。
10.5 常用语言标签
标签不区分大小写,但建议统一小写(sql 而非 SQL),Shiki 的语言 id 全是小写:
| 用途 | 标签 |
|---|---|
| Python | python |
| SQL | sql |
| Shell | bash / shell |
| JavaScript | javascript / js |
| TypeScript | typescript / ts |
| JSON / YAML | json / yaml |
| 纯文本 | 不写语言 |
高亮不生效怎么办
检查语言标签拼写。Shiki 认不出的标签会静默降级成纯文本——构建不报错、页面正常,只是没有颜色。
11. 数学公式
开启 math feature 后,行内用 $...$,独立成行的用 $$...$$。
11.1 行内公式
勾股定理:$a^2 + b^2 = c^2$,欧拉恒等式:$e^{i\pi} + 1 = 0$。效果:
勾股定理:a2+b2=c2,欧拉恒等式:eiπ+1=0。
11.2 独立公式
$$
\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
$$效果:
∫−∞∞e−x2dx=π
11.3 常用写法
行内:$a_i + b_i = c_i$ 分数:$\frac{a}{b}$ 根号:$\sqrt{x}$
上下标:$x^{n+1}$、$x_{i,j}$
运算符:$\sum_{i=1}^{n} x_i$、$\prod_{i=1}^{n} x_i$、$\lim_{n \to \infty}$
关系:$\leq$ $\geq$ $\neq$ $\approx$ $\equiv$
集合:$A \cup B$、$A \cap B$、$\emptyset$、$x \in A$
逻辑:$\forall$ $\exists$ $\neg$ $\land$ $\lor$ $\Rightarrow$
矩阵:$\begin{pmatrix} a & b \\ c & d \end{pmatrix}$
\begin{vmatrix} a & b \\ c & d \end{vmatrix}效果:
行内:ai+bi=ci 分数:ba 根号:x
上下标:xn+1、xi,j
运算符:∑i=1nxi、∏i=1nxi、limn→∞
关系:≤ ≥ = ≈ ≡
集合:A∪B、A∩B、∅、x∈A
逻辑:∀ ∃ ¬ ∧ ∨ ⇒
矩阵:(acbd)
acbd
$ 的歧义
正文里写美元符号会被当成公式起始符。比如「价格 5和10」会出问题。
转义写成 \$,或者干脆用「5 美元」这种写法。
12. 脚注
这是带脚注的句子[^1],还有一个[^longnote]。
[^1]: 脚注内容,支持 **粗体** 和 `代码`。
[^longnote]: 脚注也可以写很长,一样会排在文末。效果:
13. 分隔线
---效果:
14. 特殊字符与转义
\*这样不会变斜体\*
\# 这样不会变标题
\- 这样不会变列表效果:
*这样不会变斜体*
# 这样不会变标题
- 这样不会变列表
HTML 实体也可用:© → ©,& → &,< → <
15. 不生效的写法
这些看起来是 Markdown、但在本站不生效,写的时候避开:
| 写法 | 实际结果 | 说明 |
|---|---|---|
x^2^ |
x^2^ 原样 |
上标需要开 superscript feature,未开 |
H~2~O |
H + O |
下标 feature 未开;单波浪号被当成 GFM 删除线,误删了 2 |
:::note 容器 |
内容被吞,只剩正文 | directive feature 开了但需要配 hast 插件才能渲染 |
[[wikilink]] |
原样输出 | Obsidian 双链语法未启用 |
| 术语表 | 不生效 | 定义列表 feature 未开 |
需要其中某项的话,在 astro.config.mjs 的 features 里打开对应开关即可。
16. 一份速查
| 类别 | 写法 |
|---|---|
| 粗体 | **文字** |
| 斜体 | *文字* |
| 删除线 | ~~文字~~ |
| 行内代码 | `代码` |
| 代码块 | ```语言 … ``` |
| 链接 | [文字](地址) |
| 图片 |  |
| 引用 | > 文字 |
| 提示框 | > [!note] 标题 |
| 表格 | | 列 | 列 | + | --- | --- | |
| 任务项 | - [x] 完成 / - [ ] 未完成 |
| 行内公式 | $公式$ |
| 独立公式 | $$公式$$ |
| 脚注 | [^1] + [^1]: 内容 |
| 分隔线 | --- |
| 标题 ID | ## 标题 { #id } |